home *** CD-ROM | disk | FTP | other *** search
/ Computer Select (Limited Edition) / Computer Select.iso / dobbs / v17n03 / 80x87.exe / SUMARR.ASM < prev    next >
Encoding:
Assembly Source File  |  1992-01-24  |  768 b   |  29 lines

  1.  
  2. ; sumarray(), a Borland C++-callable function to sum the values
  3. ; in an array of floats.
  4.  
  5. ; Copyright (C) 1991 by Nicholas Wilt.  All rights reserved.
  6.  
  7. .MODEL  LARGE,C
  8.  
  9. .CODE
  10.  
  11. ; double sumarray(float *arr, int n);
  12. ;   Returns sum of the n elements in arr.
  13.  
  14.     PUBLIC  sumarray
  15.  
  16. sumarray    PROC    ARR:DWORD,N:WORD
  17.     les bx,ARR      ; ES:BX <- pointer to arr
  18.     mov cx,N        ; Get number of elements
  19.     fldz            ; Load zero
  20.     jcxz    LeaveSum    ; Leave if count is 0.
  21. DoSum:  fadd    dword ptr es:[bx] ; Add value in array to ST(0).
  22.     add bx,4        ; Point to next value in array.
  23.     loop    DoSum       ; Loop until done.
  24. LeaveSum:           ; Return value in ST(0).
  25.     ret
  26. sumarray    ENDP
  27.  
  28.     END
  29.